﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace ArgusLib.Fractals
{
	public interface IParameter : ICloneable
	{
		/// <summary>
		/// Gets or sets the pixelwidth (horizontal resolution) which will be used
		/// to calculate the fractal.
		/// </summary>
		int PixelWidth { get; set; }

		/// <summary>
		/// Gets or sets the pixelheight (vertical resolution) which will be used
		/// to calculate the fractal.
		/// </summary>
		int PixelHeight { get; set; }

		/// <summary>
		/// Gets or sets the number of threads used to parallel calculate the fractal
		/// if supported by the fractal. Set this value to <c>0</c> to let the application
		/// determine how many threads to use.
		/// </summary>
		int ThreadCount { get; set; }

		/// <summary>
		/// Convert screen coordinates to a data value.
		/// </summary>
		object Convert(float x, float y);
	}
}
